#ifndef __METHODDEF_H__
#define __METHODDEF_H__
#include <windows.h>

#ifdef __cplusplus
extern "C" {
#endif


/* definition de tous les types */
typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef signed char GLbyte;
typedef short GLshort;
typedef int GLint;
typedef int GLsizei;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint;
typedef float GLfloat;
typedef float GLclampf;
typedef double GLdouble;
typedef double GLclampd;
typedef void GLvoid;
typedef void (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i);
typedef void (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
typedef void (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
typedef void (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
typedef void (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
typedef void (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
typedef void (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
typedef void (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer);
typedef void (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params);
typedef void (APIENTRY * PFNGLARRAYELEMENTARRAYEXTPROC)(GLenum mode, GLsizei count, const GLvoid* pi);
typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSWINPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
typedef void (APIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *data);
typedef void (APIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
typedef void (APIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data);
typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);







/* definition de tous les types de signatures differentes */
typedef void(__stdcall * CBGL_TYPE_3GLSHORT_VOID)(GLshort, GLshort, GLshort);
typedef void(__stdcall * CBGL_TYPE_2GLFLOATP_VOID)(const GLfloat*, const GLfloat*);
typedef void(__stdcall * CBGL_TYPE_4GLUBYTE_VOID)(GLubyte, GLubyte, GLubyte, GLubyte);
typedef void(__stdcall * CBGL_TYPE_2GLCLAMPD_VOID)(GLclampd, GLclampd);
typedef void(__stdcall * CBGL_TYPE_4GLDOUBLE_VOID)(GLdouble, GLdouble, GLdouble, GLdouble);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_1GLFLOATP_1GLINT_VOID)(GLenum, GLint, GLenum, const GLfloat*);
typedef void(__stdcall * CBGL_TYPE_2GLDOUBLE_VOID)(GLdouble, GLdouble);
typedef void(__stdcall * CBGL_TYPE_1GLINT_VOID)(GLint);
typedef void(__stdcall * CBGL_TYPE_2GLDOUBLEP_VOID)(const GLdouble*, const GLdouble*);
typedef void(__stdcall * CBGL_TYPE_1GLUINT_VOID)(GLuint);
typedef void(__stdcall * CBGL_TYPE_4GLFLOAT_2GLSIZEI_1GLUBYTEP_VOID)(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, const GLubyte*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLUINT_VOID)(GLuint, GLenum);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_2GLINT_VOID)(GLenum, GLint, GLint);
typedef void(__stdcall * CBGL_TYPE_VOID)();
typedef void(__stdcall * CBGL_TYPE_4GLFLOAT_2GLINT_VOID)(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLSIZEI_1GLUINTP_VOID)(GLenum, GLsizei, const GLuint*);
typedef void(__stdcall * CBGL_TYPE_2GLSHORTP_VOID)(const GLshort*, const GLshort*);
typedef void(__stdcall * CBGL_TYPE_1GLBYTEP_VOID)(const GLbyte*);
typedef GLboolean(__stdcall * CBGL_TYPE_1GLUINT_GLBOOLEAN)(GLuint);
typedef GLboolean(__stdcall * CBGL_TYPE_1GLBOOLEANP_1GLSIZEI_1GLUINTP_GLBOOLEAN)(GLsizei, const GLuint*, const GLboolean*);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_4GLINT_2GLSIZEI_VOID)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
typedef void(__stdcall * CBGL_TYPE_3GLDOUBLE_VOID)(GLdouble, GLdouble, GLdouble);
typedef void(__stdcall * CBGL_TYPE_1GLUSHORTP_VOID)(const GLushort*);
typedef void(__stdcall * CBGL_TYPE_1GLBOOLEANP_VOID)(const GLboolean*);
typedef void(__stdcall * CBGL_TYPE_2GLINT_2GLSIZEI_VOID)(GLint, GLint, GLsizei, GLsizei);
typedef void(__stdcall * CBGL_TYPE_1GLSIZEI_1GLUINT_VOID)(GLuint, GLsizei);
typedef GLuint(__stdcall * CBGL_TYPE_1GLSIZEI_GLUINT)(GLsizei);
typedef void(__stdcall * CBGL_TYPE_6GLDOUBLE_VOID)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLFLOATP_1GLSIZEI_VOID)(GLenum, GLsizei, const GLfloat*);
typedef void(__stdcall * CBGL_TYPE_1GLINT_1GLUSHORT_VOID)(GLint, GLushort);
typedef void(__stdcall * CBGL_TYPE_1GLDOUBLEP_2GLENUM_VOID)(GLenum, GLenum, const GLdouble*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLUSHORTP_VOID)(GLenum, const GLushort*);
typedef void(__stdcall * CBGL_TYPE_1GLCLAMPFP_1GLSIZEI_1GLUINTP_VOID)(GLsizei, const GLuint*, const GLclampf*);
typedef void(__stdcall * CBGL_TYPE_1GLFLOATP_VOID)(const GLfloat*);
typedef void(__stdcall * CBGL_TYPE_1GLSHORTP_VOID)(const GLshort*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_VOID)(GLenum);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_4GLINT_1GLSIZEI_VOID)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLFLOATP_VOID)(GLenum, const GLfloat*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_2GLINT_2GLSIZEI_VOID)(GLint, GLint, GLsizei, GLsizei, GLenum);
typedef void(__stdcall * CBGL_TYPE_4GLSHORT_VOID)(GLshort, GLshort, GLshort, GLshort);
typedef void(__stdcall * CBGL_TYPE_3GLENUM_1GLINT_1GLVOIDP_VOID)(GLenum, GLint, GLenum, GLenum, const GLvoid*);
typedef void(__stdcall * CBGL_TYPE_1GLDOUBLE_2GLENUM_VOID)(GLenum, GLenum, GLdouble);
typedef void(__stdcall * CBGL_TYPE_3GLUBYTE_VOID)(GLubyte, GLubyte, GLubyte);
typedef void(__stdcall * CBGL_TYPE_1GLDOUBLEP_1GLENUM_VOID)(GLenum, const GLdouble*);
typedef void(__stdcall * CBGL_TYPE_2GLSHORT_VOID)(GLshort, GLshort);
typedef void(__stdcall * CBGL_TYPE_1GLFLOAT_VOID)(GLfloat);
typedef void(__stdcall * CBGL_TYPE_4GLFLOAT_VOID)(GLfloat, GLfloat, GLfloat, GLfloat);
typedef void(__stdcall * CBGL_TYPE_4GLBYTE_VOID)(GLbyte, GLbyte, GLbyte, GLbyte);
typedef void(__stdcall * CBGL_TYPE_4GLCLAMPF_VOID)(GLclampf, GLclampf, GLclampf, GLclampf);
typedef void(__stdcall * CBGL_TYPE_3GLENUM_2GLINT_1GLSIZEI_1GLVOIDP_VOID)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid*);
typedef void(__stdcall * CBGL_TYPE_4GLUSHORT_VOID)(GLushort, GLushort, GLushort, GLushort);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_1GLSIZEI_1GLVOIDP_VOID)(GLenum, GLsizei, GLenum, const GLvoid*);
typedef void(__stdcall * CBGL_TYPE_2GLFLOAT_1GLINT_VOID)(GLint, GLfloat, GLfloat);
typedef void(__stdcall * CBGL_TYPE_3GLENUM_3GLINT_2GLSIZEI_1GLVOIDP_VOID)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
typedef const GLubyte*(__stdcall * CBGL_TYPE_1GLENUM_GLUBYTEP)(GLenum);
typedef void(__stdcall * CBGL_TYPE_2GLINTP_VOID)(const GLint*, const GLint*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_4GLFLOAT_1GLFLOATP_4GLINT_VOID)(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat*);
typedef void(__stdcall * CBGL_TYPE_4GLINT_VOID)(GLint, GLint, GLint, GLint);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_5GLINT_2GLSIZEI_VOID)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
typedef void(__stdcall * CBGL_TYPE_1GLBOOLEANP_1GLENUM_VOID)(GLenum, const GLboolean*);
typedef void(__stdcall * CBGL_TYPE_3GLUINT_VOID)(GLuint, GLuint, GLuint);
typedef void(__stdcall * CBGL_TYPE_4GLUINT_VOID)(GLuint, GLuint, GLuint, GLuint);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLINT_1GLSIZEI_VOID)(GLenum, GLint, GLsizei);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_VOID)(GLenum, GLenum);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLINT_1GLSIZEI_1GLVOIDP_VOID)(GLint, GLenum, GLsizei, const GLvoid*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLINTP_VOID)(GLenum, const GLint*);
typedef void(__stdcall * CBGL_TYPE_4GLBOOLEAN_VOID)(GLboolean, GLboolean, GLboolean, GLboolean);
typedef void(__stdcall * CBGL_TYPE_1GLCLAMPF_1GLENUM_VOID)(GLenum, GLclampf);
typedef void(__stdcall * CBGL_TYPE_1GLSIZEI_1GLVOIDP_VOID)(GLsizei, const GLvoid*);
typedef void(__stdcall * CBGL_TYPE_1GLUBYTE_VOID)(GLubyte);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLINT_1GLUINT_VOID)(GLenum, GLint, GLuint);
typedef void(__stdcall * CBGL_TYPE_1GLCLAMPD_VOID)(GLclampd);
typedef void(__stdcall * CBGL_TYPE_1GLUINTP_VOID)(const GLuint*);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_1GLINT_VOID)(GLenum, GLenum, GLint);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_2GLSIZEI_1GLVOIDP_VOID)(GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
typedef void(__stdcall * CBGL_TYPE_3GLUSHORT_VOID)(GLushort, GLushort, GLushort);
typedef void(__stdcall * CBGL_TYPE_1GLBITFIELD_VOID)(GLbitfield);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_1GLINT_1GLINTP_VOID)(GLenum, GLint, GLenum, const GLint*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLINT_VOID)(GLenum, GLint);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_2GLFLOAT_1GLFLOATP_2GLINT_VOID)(GLenum, GLfloat, GLfloat, GLint, GLint, const GLfloat*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_4GLINT_1GLSIZEI_VOID)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_1GLFLOATP_VOID)(GLenum, GLenum, const GLfloat*);
typedef void(__stdcall * CBGL_TYPE_3GLENUM_VOID)(GLenum, GLenum, GLenum);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_1GLFLOAT_VOID)(GLenum, GLenum, GLfloat);
typedef GLint(__stdcall * CBGL_TYPE_1GLENUM_GLINT)(GLenum);
typedef void(__stdcall * CBGL_TYPE_3GLBYTE_VOID)(GLbyte, GLbyte, GLbyte);
typedef void(__stdcall * CBGL_TYPE_4GLDOUBLE_1GLDOUBLEP_1GLENUM_4GLINT_VOID)(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble*);
typedef void(__stdcall * CBGL_TYPE_4GLDOUBLE_2GLINT_VOID)(GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble);
typedef void(__stdcall * CBGL_TYPE_3GLENUM_3GLINT_1GLSIZEI_1GLVOIDP_VOID)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLFLOAT_VOID)(GLenum, GLfloat);
typedef void(__stdcall * CBGL_TYPE_1GLBOOLEAN_VOID)(GLboolean);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLSIZEI_1GLVOIDP_VOID)(GLenum, GLsizei, const GLvoid*);
typedef void(__stdcall * CBGL_TYPE_3GLFLOAT_VOID)(GLfloat, GLfloat, GLfloat);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_2GLINT_2GLSIZEI_1GLVOIDP_VOID)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_4GLINT_VOID)(GLenum, GLint, GLint, GLint, GLint);
typedef void(__stdcall * CBGL_TYPE_3GLINT_VOID)(GLint, GLint, GLint);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLVOIDPP_VOID)(GLenum, const GLvoid**);
typedef void(__stdcall * CBGL_TYPE_1GLUBYTEP_VOID)(const GLubyte*);
typedef void(__stdcall * CBGL_TYPE_1GLSIZEI_1GLUINTP_VOID)(GLsizei, const GLuint*);
typedef void(__stdcall * CBGL_TYPE_2GLINT_VOID)(GLint, GLint);
typedef void(__stdcall * CBGL_TYPE_2GLDOUBLE_1GLINT_VOID)(GLint, GLdouble, GLdouble);
typedef void(__stdcall * CBGL_TYPE_2GLDOUBLE_1GLDOUBLEP_1GLENUM_2GLINT_VOID)(GLenum, GLdouble, GLdouble, GLint, GLint, const GLdouble*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLSIZEI_1GLUSHORTP_VOID)(GLenum, GLsizei, const GLushort*);
typedef void(__stdcall * CBGL_TYPE_1GLINTP_VOID)(const GLint*);
typedef void(__stdcall * CBGL_TYPE_1GLENUM_1GLUINTP_VOID)(GLenum, const GLuint*);
typedef void(__stdcall * CBGL_TYPE_2GLENUM_1GLINTP_VOID)(GLenum, GLenum, const GLint*);
typedef void(__stdcall * CBGL_TYPE_1GLDOUBLE_VOID)(GLdouble);
typedef void(__stdcall * CBGL_TYPE_1GLDOUBLEP_VOID)(const GLdouble*);
typedef GLboolean(__stdcall * CBGL_TYPE_1GLENUM_GLBOOLEAN)(GLenum);
typedef GLenum(__stdcall * CBGL_TYPE_GLENUM)();
typedef void(__stdcall * CBGL_TYPE_1GLSHORT_VOID)(GLshort);
typedef void(__stdcall * CBGL_TYPE_2GLFLOAT_VOID)(GLfloat, GLfloat);


#ifdef __cplusplus
}
#endif

#endif /* __METHODDEF_H__ */